/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.autosalon.ui.doplnek.action;

import com.autosalon.DAO.DaoFactory;
import com.autosalon.ui.doplnek.Doplnek;
import com.autosalon.ui.doplnek.state.DoplnekStateHolder;
import com.vaadin.ui.Button.ClickEvent;

/**
 * Trida pro ulozeni doplnku do databaze
 * @author Petr Kriegisch
 */
public class SaveDoplnekAction extends AbstractDoplneklAction {

    com.autosalon.model.Doplnek doplnekNew;
    String nazev;
    int cena;

    public SaveDoplnekAction(Doplnek doplnek) {
        super(doplnek);
    }

    @Override
    public void buttonClick(ClickEvent event) {
        try {
            nazev = doplnek.getTfNazevDoplnku().getValue().toString();
            cena = Integer.parseInt(doplnek.getTfCenaDoplnku().getValue().toString());
            if (!nazev.equals("")) {
                doplnekNew = new com.autosalon.model.Doplnek();
                doplnekNew.setPopis_doplnku(nazev);
                doplnekNew.setCena(cena);
                DaoFactory.getinstance().getDoplnek().insert(doplnekNew);
                doplnek.getWindow().showNotification("Doplnek uspesne vlozen");

                int id;
                try {
                    id = doplnek.getSwitcher().getMainWindow().getZakaznik().getRole().getId().intValue();
                } catch (NullPointerException e) {
                    id = 1;
                }
                doplnek.getTfNazevDoplnku().setValue("");
                doplnek.getTfCenaDoplnku().setValue("");
                doplnek.naplnTabulkuObjednavky();
                DoplnekStateHolder.setState(DoplnekStateHolder.VIEW_DOPLNEK_STATE, id, doplnek);
            } else {
                doplnek.getWindow().showNotification("Vlozene udaje jsou chybne");
            }
        } catch (NumberFormatException e) {
            doplnek.getWindow().showNotification("Vlozene udaje jsou chybne");
        } catch (IndexOutOfBoundsException in) {
            doplnek.getWindow().showNotification("Vlozene udaje jsou chybne");
        } catch (NullPointerException np) {
            doplnek.getWindow().showNotification("Vlozene udaje jsou chybne");
        }
    }
}
